function getEventKeyDescription(event) {
  var aKeyDescriptions = [];
  if (event.ctrlKey)  aKeyDescriptions.push('CTRL');
  if (event.altKey)   aKeyDescriptions.push('ALT');
  if (event.shiftKey) aKeyDescriptions.push('SHIFT');
  if (event.metaKey)  aKeyDescriptions.push('WIN');
  var aKeyCodes = {
    10:  'ENTER',
    13:  'ENTER',
    32:  'SPACE',
    127: 'BACKSPACE'
  };
  if (event.keyCode in aKeyCodes) {
    aKeyDescriptions.push(aKeyCodes[event.keyCode]);
  } else if (event.keyCode > 0x20 && event.keyCode < 0x7F) {
    aKeyDescriptions.push(String.fromCharCode(event.keyCode));
  } else {
    // We do not implement others yet
    return null;
  }
  sKeyDescription = aKeyDescriptions.join(' + ');
  var aKeyLocations = {
      1: 'left',
      2: 'right',
      3: 'numpad',
      4: 'mobile',
      5: 'joystick'
  };
  if (event.keyLocation in aKeyLocations) {
    sKeyDescription += ' (' + aKeyLocations[event.keyLocation] + ')';
  }
  return sKeyDescription;
}